package edu.washington.tcss360.burningpenguins.data;

import java.util.Date;

/**
 * A class to represent the Conference object in the DB.
 * <p>
 * Note that dates are stored as longs in the database.
 * 
 * @author Chris Gelatt
 * @version 1.0
 * @since 2013-11-2
 *
 */
public class Conference extends DataObject
{
	private Integer id;
	private String title;
	private String description;
	private Date submitDeadline;
	private Date reviewDeadline;
	private Date recommendDeadline;
	private Date acceptDeadline;
	private Date updateDeadline;
	
	public Conference()
	{
		super();
	}
	
	public Conference(String title, String description, Date submitDeadline, Date reviewDeadline, Date recommendDeadline, Date acceptDeadline, Date updateDeadline)
	{
		super();
		setId(0);
		setTitle(title);
		setDescription(description);
		setSubmitDeadline(submitDeadline);
		setReviewDeadline(reviewDeadline);
		setRecommendDeadline(recommendDeadline);
		setAcceptDeadline(acceptDeadline);
		setUpdateDeadline(updateDeadline);
	}
	
	public Integer getId()
	{
		return id;
	}
	
	public void setId(Integer id)
	{
		this.id = id;
	}

	public String getTitle()
	{
		return title;
	}
	
	public void setTitle(String title)
	{
		this.title = title;
	}
	
	public String getDescription()
	{
		return description;
	}
	
	public void setDescription(String description)
	{
		this.description = description;
	}
	
	public Long getSubmitDeadline()
	{
		return submitDeadline.getTime();
	}
	
	public void setSubmitDeadline(Date submitDeadline)
	{
		this.submitDeadline = submitDeadline;
	}
	
	public void setSubmitDeadline(Long submitDeadline)
	{
		this.submitDeadline = new Date(submitDeadline);
	}
	
	public Long getReviewDeadline()
	{
		return reviewDeadline.getTime();
	}
	
	public void setReviewDeadline(Date reviewDeadline)
	{
		this.reviewDeadline = reviewDeadline;
	}
	
	public void setReviewDeadline(Long reviewDeadline)
	{
		this.reviewDeadline = new Date(reviewDeadline);
	}
	
	public Long getRecommendDeadline()
	{
		return recommendDeadline.getTime();
	}
	
	public void setRecommendDeadline(Date recommendDeadline)
	{
		this.recommendDeadline = recommendDeadline;
	}
	
	public void setRecommendDeadline(Long recommendDeadline)
	{
		this.recommendDeadline = new Date(recommendDeadline);
	}
	
	public Long getAcceptDeadline()
	{
		return acceptDeadline.getTime();
	}
	
	public void setAcceptDeadline(Date acceptDeadline)
	{
		this.acceptDeadline = acceptDeadline;
	}
	
	public void setAcceptDeadline(Long acceptDeadline)
	{
		this.acceptDeadline = new Date(acceptDeadline);
	}
	
	public Long getUpdateDeadline()
	{
		return updateDeadline.getTime();
	}
	
	public void setUpdateDeadline(Date updateDeadline)
	{
		this.updateDeadline = updateDeadline;
	}
	
	public void setUpdateDeadline(Long updateDeadline)
	{
		this.updateDeadline = new Date(updateDeadline);
	}
}
